package com.feng.zshop.backend.service;

import com.feng.zshop.common.exception.ProductTypeExistsException;
import com.feng.zshop.model.ProductType;

import java.util.List;

public interface ProductTypeService {

    /**
     * 查询所有的商品类型
     *
     * @return List<ProductType>
     */
    List<ProductType> findAllProductType();

    /**
     * 根据商品名称查询商品信息
     *
     * @param name
     * @return ProductType
     */
    ProductType selectProductTypeByName(String name);

    /**
     * 根据商品id查询商品信息
     *
     * @param id
     * @return ProductType
     */
    ProductType selectProductTypeById(Integer id);

    /**
     * 添加商品类型
     *
     * @param productType
     * @throws ProductTypeExistsException
     */
    void addProductType(String productType) throws ProductTypeExistsException;

    /**
     * 根据name查询 productType
     *
     * @param productTypeName
     * @return
     */
    public ProductType findByName(String productTypeName);

    /**
     * 更具id 删除 productType
     *
     * @param id
     */
    void removeProductTypeById(Integer id);

    /**
     * 更新商品名称
     *
     * @param id
     * @param name
     */
    void updateProductName(Integer id, String name) throws ProductTypeExistsException;

    /**
     * 更新商品状态
     *
     * @param id
     */
    void updateProductTypeStatus(Integer id);

    /**
     * 根据状态查找
     * @return
     */
    List<ProductType> findProductTypeEnable();
}
